package controller;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import view.EditeurUI;
import view.ZoneDessin;

public class Interpreteur {
	
	private TortueController tortueController;
	private EditeurUI editeur;
	private ZoneDessin zoneDessin;

	public Interpreteur(EditeurUI editeur, ZoneDessin zoneDessin, TortueController tortueController){
		this.editeur = editeur;
		this.zoneDessin = zoneDessin;
		this.tortueController = tortueController;
	}
	
	public void doInterpreter(){
		Pattern pattern = Pattern.compile("(.*?)(\\d+\\.\\d+?|\\d+)(.*?)"); 
		for(String line:editeur.getText().split("\n")){
			line = line.replaceAll("[()]", "");
			Matcher m = pattern.matcher(line); 
			while(m.find()){ 
				//editeur.setText(editeur.getText()+"\n"+ "J\'execute l\'action : "+m.group(1)+" de "  + m.group(2));
				if(m.group(1).equals("avancer")){
					tortueController.doAvancer(Integer.parseInt(m.group(2)));
				}
				if(m.group(1).equals("tournerDroite")){
					tortueController.doTournerDroite(Integer.parseInt(m.group(2)));
				}
				if(m.group(1).equals("tournerGauche")){
					tortueController.doTournerGauche(Integer.parseInt(m.group(2)));
				}
				if(m.group(1).equals("lever")){
					tortueController.doLever();
				}
				if(m.group(1).equals("baisser")){
					tortueController.doBaisser();
				}
				if(m.group(1).equals("reset")){
					tortueController.doReset();
				}
				
			} 
		}
	}
}